Skip to content

plugins: require cloud_unsupported_reason and reject placeholder versions#4384

Open
twmb wants to merge 1 commit intomainfrom
plugins-cloud-reason-and-versions
Open

plugins: require cloud_unsupported_reason and reject placeholder versions#4384
twmb wants to merge 1 commit intomainfrom
plugins-cloud-reason-and-versions

Conversation

@twmb
Copy link
Copy Markdown
Contributor

@twmb twmb commented May 1, 2026

Adds a cloud_unsupported_reason column to internal/plugins/info.csv so that every connector excluded from the cloud distribution carries a one-line rationale alongside the cloud=n flag, and replaces the placeholder 0.0.0 version on every entry that predated version tracking with the earliest release tag containing the connector's first registration commit.

Two new tests in internal/plugins/alltest enforce the invariants going forward:

  • TestPluginCloudEnablement requires every plugin to either be cloud-enabled or to carry a non-empty cloud_unsupported_reason; cloud-enabled rows must leave the reason empty.
  • TestPluginVersion rejects empty or 0.0.0 versions, so new components must set the upcoming release tag in the same change that registers them.

The reasons for the connectors deliberately gated on security review are bucketed into "security: arbitrary code execution", "security: local filesystem access", "security: raw socket access", "security: opens a listener unreachable from cloud", and "security: pipeline stdio not exposed in cloud". The remaining reasons cover deprecated upstream protocols, managed metrics/tracing in cloud, missing certification, and a few connector-specific limitations.

…ions

Adds a cloud_unsupported_reason column to internal/plugins/info.csv so that
every connector excluded from the cloud distribution carries a one-line
rationale alongside the cloud=n flag, and replaces the placeholder 0.0.0
version on every entry that predated version tracking with the earliest
release tag containing the connector's first registration commit.

Two new tests in internal/plugins/alltest enforce the invariants going
forward:

- TestPluginCloudEnablement requires every plugin to either be cloud-enabled
  or to carry a non-empty cloud_unsupported_reason; cloud-enabled rows must
  leave the reason empty.
- TestPluginVersion rejects empty or 0.0.0 versions, so new components must
  set the upcoming release tag in the same change that registers them.

The reasons for the connectors deliberately gated on security review are
bucketed into "security: arbitrary code execution", "security: local
filesystem access", "security: raw socket access", "security: opens a
listener unreachable from cloud", and "security: pipeline stdio not exposed
in cloud". The remaining reasons cover deprecated upstream protocols,
managed metrics/tracing in cloud, missing certification, and a few
connector-specific limitations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mmatczuk
Copy link
Copy Markdown
Contributor

mmatczuk commented May 4, 2026

I'd consider completely redoing this file or removing it completely. Having said that such a file comes in handy as a single source of truth. The problem is that data in component registration and cvs may and do diverge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants